import java.io.*; 

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.util.*;

public class InputArea extends JPanel implements ActionListener {

   File f=null;                   //存放链表的文件

   Box baseBox ,boxV1,boxV2; 

   JTextField name,mount,price;  //为Goods对象提供的视图

   JButton button;               //控制器

   LinkedList<Goods> goodsList; //存放Goods对象的链表

   InputArea(File f) {

     this.f=f;

     goodsList=new LinkedList<Goods>();

     name=new JTextField(12);

     mount=new JTextField(12); 

     price=new JTextField(12);

     button=new JButton("录入");

     button.addActionListener(this);

     boxV1=Box.createVerticalBox();

     boxV1.add(new JLabel("输入名称"));

     boxV1.add(Box.createVerticalStrut(8));

     boxV1.add(new JLabel("输入库存"));

     boxV1.add(Box.createVerticalStrut(8));

     boxV1.add(new JLabel("输入单价"));

     boxV1.add(Box.createVerticalStrut(8));

     boxV1.add(new JLabel("单击录入"));

     boxV2=Box.createVerticalBox();

     boxV2.add(name);

     boxV2.add(Box.createVerticalStrut(8));

     boxV2.add(mount);

     boxV2.add(Box.createVerticalStrut(8));

     boxV2.add(price);

     boxV2.add(Box.createVerticalStrut(8));

     boxV2.add(button);

     baseBox=Box.createHorizontalBox();

     baseBox.add(boxV1);

     baseBox.add(Box.createHorizontalStrut(10));

     baseBox.add(boxV2);

     add(baseBox); 

   }

   public void actionPerformed(ActionEvent e) {

     if(f.exists()) {

       try{

          FileInputStream  fi=new FileInputStream(f);

          ObjectInputStream oi=new ObjectInputStream(fi);

          goodsList= (LinkedList<Goods>)oi.readObject();

          fi.close();

          oi.close();

          Goods goods=new Goods();

          goods.setName(name.getText());

          goods.setMount(mount.getText()); 

          goods.setPrice(price.getText());

          goodsList.add(goods);

          FileOutputStream fo=new FileOutputStream(f);

          ObjectOutputStream out=new ObjectOutputStream(fo);

          out.writeObject(goodsList);

          out.close();

       }

       catch(Exception ee) {}

     }

     else{

       try{ 

          f.createNewFile();

          Goods goods=new Goods();

          goods.setName(name.getText());

          goods.setMount(mount.getText()); 

          goods.setPrice(price.getText());

          goodsList.add(goods);

          FileOutputStream fo=new  FileOutputStream(f);

          ObjectOutputStream out=new ObjectOutputStream(fo);

          out.writeObject(goodsList);

          out.close();

       }

       catch(Exception ee) {}

     }

   }

}
